6
תגובות

עזרה בהצפנת נתונים ב - MySql.

פתח Ben ,
המדריך הזה.

מה הבעיה בקוד הזה שהוא פשוט לא מכניס לי למסד ?
$q = $db->prepare("INSERT INTO `accounts` (`username`) VALUES (DES_ENCRYPT(:username , somekey)) ");
$q->bindParam(":username" , $username);
$q->execute();


אבל אם במקום:
DES_ENCRYPT(:username , somekey)


אני כותב משהו אחר, לדוגמא Usersblabla
$q = $db->prepare("INSERT INTO `accounts` (`username`) VALUES ('Usersblabla') ");


או בדרך המלאה:
$q = $db->prepare("INSERT INTO `accounts` (`username`) VALUES (:username) ");
$q->bindValue(":username" , 'Usersblabla');
$q->execute();


זה מכניס לי למסד, משמע הבעיה היא בDES_ENCRYPT, אבל מה כבר לא תקין ?

6 תשובות

avatar ענה iiddaannyy ב 02 לספטמבר 2012 #

תשלח ל-bindParam גם את הפרמטר השלישי ואת הרביעי.

avatar ענה Ben ב 02 לספטמבר 2012 #

$q->bindParam(":username" , $username , PDO::PARAM_STR , 20);


זה מה שכתבתי, וזה עדיין לא עובד.

avatar ענה intval ב 03 לספטמבר 2012 #

כבר בדקנו ביחד למה זה לא עובד וגם כתבתי לך את התשובה.
זה קורה כי הפונקציה des_encrypt מחזירה כל הזמן null.
הסיבה שהיא מחזירה כל הזמן null היא בגלל
This function works only if MySQL has been configured with SSL support. See Section 6.3.8, “Using SSL for Secure Connections”.


הפתרון שהמלצתי לך עליו זה לעזור את חברת האחסון החינמית הזאת בגלל שהם לא קינפגו נכון את השרתים
או לממש את ההצפנה על ידי PHP.

חוץ מזה, מה זה somekey? זה משתנה? למה הוא לא מועבר ובלי נקודתתים בהתחלה?
מחרוזת? למה היא בלי גרשיים.

avatar ענה Ben ב 03 לספטמבר 2012 #

כן שחכתי להוסיף נקודותיים טעות שלי.
אז אתה מכיר חברת איחסונים חינמית אחרת ? אין לי איפה להריץ את זה ...

avatar ענה Michael ב 03 לספטמבר 2012 #

חברות איחסון חינמיות זה שואה. אפשר לקנות איחסון טוב ב5$ לחודש, זה כלום יחסית.
בכ"מ, http://x10hosting.com אמורים להיות טובים

avatar ענה Ben ב 03 לספטמבר 2012 #

We have disabled registrations from your country of origin due to continued abuse.


אי אפשר להרשם אליהם בכלל :S